Some embodiments of the present disclosure are directed to an improved approach for reducing downtime during upgrades of interrelated components in a database system.
Reducing downtime of computing systems while upgrading is a goal that has been long sought after. Legacy approaches have addressed the problem by deploying techniques to upgrade one or another type of data found in an installation of a computing system, while relying on some other technique to upgrade other types of data found in the same installation. For example, legacy techniques have provided for upgrade of software applications by overwriting or up-versioning the file containing the application software code followed by a “restart” (e.g., of the application or of the operating system). Other legacy techniques have implemented approaches to upgrade a file system, most often by shutting the file system down (e.g., incurring downtime) during the upgrade. Still other legacy techniques have addressed the task of upgrading a relational database by shutting down the relational database for a duration, then upgrading the database structures and restarting the relational database. In some environments, legacy techniques shut down the application servers while keeping the file system and database servers running in order to accept the upgrades.
While these legacy techniques have enjoyed varying usage when applied individually, such legacy techniques do not address the needed coordination of orchestration of an installation-wide upgrade of all types of components. Strictly as examples of the deficiencies of the aforementioned individual legacy techniques, an upgraded application might include certain assumptions of an underlying file system (e.g., either format or content), and those assumptions might not become true until a certain time after the software application as well as the file system have both been successfully upgraded. Again, strictly as examples of the deficiencies of the aforementioned individual legacy techniques, an upgraded application might include certain assumptions of a relational database system (e.g., either by definition of relations or content of tables), and those assumptions might not become true until a certain time after the software application as well as the relational database system have both been successfully upgraded.
Further, in modern environments, the corpus of software application code modules, plus the relational database storage, plus the file system can comprise a storage footprint in the terabytes or petabytes, which presents a practical constraint to the legacy techniques in that the legacy techniques may incur long downtimes during upgrades.
An improved approach, namely an approach to orchestrate the upgrades of software applications together with a file system, together with a relational database is needed. The present disclosure provides an improved method, system, and computer program product for orchestration of database objects, file systems, and applications during online patching.